#include "myusart.h"

void MYUSART_Init(void){
	USART_RCC_APBClkCmd(USART_CLK,ENABLE);
	USART_RCC_APBClkCmd(USART_GPIO_CLK,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin=USART_GPIO_PIN_TX;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(USART_GPIO_PORT,&GPIO_InitStruct);
	GPIO_InitStruct.GPIO_Pin=USART_GPIO_PIN_RX;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(USART_GPIO_PORT,&GPIO_InitStruct);
	
	USART_InitTypeDef USART_InitStruct;
	USART_InitStruct.USART_BaudRate=9600;
	USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
	USART_InitStruct.USART_Mode=USART_Mode_Tx;
	USART_InitStruct.USART_Parity=USART_Parity_No;
	USART_InitStruct.USART_StopBits=USART_StopBits_1;
	USART_InitStruct.USART_WordLength=USART_WordLength_8b;
	USART_Init(USART_PORT,&USART_InitStruct);
	
	USART_Cmd(USART_PORT,ENABLE);
}
void MYUSART_SendByte(char dat){
	while(USART_GetFlagStatus(USART_PORT,USART_FLAG_TXE)==RESET);
	USART_SendData(USART_PORT,dat);
}
void MYUSART_SendString(char *dat){
	while(*dat){
		MYUSART_SendByte(*dat++);
	}
}
void MYUSART_SendIntNumber(int num){
	char buf[16];
	sprintf(buf,"%d",num);
	MYUSART_SendString(buf);
	MYUSART_SendString("\r\n");
}
void MYUSART_SendFloatNumber(float num,u8 decimal){
	char buf[16];
	char format_num[12];
	sprintf(format_num,"%%.%df",decimal);
	sprintf(buf,format_num,num);
	MYUSART_SendString(buf);
	MYUSART_SendString("\r\n");
}
